package org.hcyspartnoc.luoxin.service.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.hcyspartnoc.luoxin.common.core.PageBean;
import org.hcyspartnoc.luoxin.common.exception.asset.AssetVCounselorException;
import org.hcyspartnoc.luoxin.common.exception.framework.AuthException;
import org.hcyspartnoc.luoxin.common.exception.service.ServiceCounselorOrderException;
import org.hcyspartnoc.luoxin.common.exception.service.WeiXinException;
import org.hcyspartnoc.luoxin.pojo.dto.service.ServiceCounselorOrderAddDto;
import org.hcyspartnoc.luoxin.pojo.po.service.ServiceCounselorOrderPo;
import org.hcyspartnoc.luoxin.pojo.vo.service.ServiceCounselorOrderVo;

public interface IServiceCounselorOrderService extends IService<ServiceCounselorOrderPo> {
    ServiceCounselorOrderVo createCOrder(ServiceCounselorOrderAddDto serviceCounselorOrderAddDto) throws AssetVCounselorException, ServiceCounselorOrderException, WeiXinException;

    void cancelOrder(Long orderId) throws ServiceCounselorOrderException, AuthException;

    PageBean<ServiceCounselorOrderPo, ServiceCounselorOrderVo> queryPageByToken(Integer currentPage, Integer pageSize, Integer status);
    ServiceCounselorOrderVo queryById(Long orderId) throws AuthException, ServiceCounselorOrderException;
    void startOrder(Long orderId) throws ServiceCounselorOrderException, AuthException;
}
